#-------------------------------------------------------------------------------
# Name:        PUISSANCE 4 !
# Purpose:     20/20.
#
# Author:      ANDRES Guillaume; ECKEL Patrick; OUADIR Guillaume.
#
# Created:     29/02/1679
# Copyright:   (c) AEO Corp. 1679
# Licence:     AEO Corp.- France
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-------------------------------------------------------------------------------

from tkinter import*
from script_test_ouadir import*

#Matrice de jeu
def raztab():
    tab=6*[0]
    for k in range(len(tab)):
        tab[k]=7*[0]
    return tab
    

#Matrice de position
global mp
mp=[[20,110],[111,201],[202,292],[293,383],[384,474],[475,565],[566,700]]

#variable de test
global vartest
vartest=False

#Strjoueur
global strjoueur
strjoueur=["Tour du joueur rouge","Tour du joueur bleu"]

class FenetreJeu(Frame):
    "creation de la fenetre de jeu"
    def __init__(self):
    ## Construction de la fenètre de jeu##
        self.fen1=Tk()
        self.can=Canvas(self.fen1,width=700,height=600)
        self.grille=PhotoImage(file='imagedepatou.gif')
        self.grillejeu=self.can.create_image(350,300,image=self.grille)
        self.can.bind("<Button-1>",self.descente_piece)
        self.photoovalr=PhotoImage(file='Imagepiece_rouge.gif')
        self.photoovalb=PhotoImage(file='Imagepiece_bleue.gif')
        self.m=raztab()
        self.tour=0
        self.can.pack()
        self.lbljoueur=Label(self.fen1,text=strjoueur[(self.tour)])
        self.lbljoueur.pack()
        self.fen1.mainloop()
        
    def descente_piece(self,event):
        ##Crée la pièce##
        #Valeures par défault
        self.my=0
        self.y=63
        self.k=0
        #Cherche la position du click:
        for i in range(0,len(mp)):
            if event.x<=mp[i][1] and event.x>=mp[i][0]:
                self.x=mp[i][0]+(4)*i+45
                self.mx=i
        #défini le couleure de la pièce
        if self.tour%2==0 and self.m[0][self.mx]==0:
            self.oval=self.can.create_image(self.x,self.y,image=self.photoovalr)
            self.grillejeu=self.can.create_image(350,300,image=self.grille)
            self.continu=True
            self.annim()
        elif self.tour%2==1 and self.m[0][self.mx]==0:
            self.oval=self.can.create_image(self.x,self.y,image=self.photoovalb)
            self.grillejeu=self.can.create_image(350,300,image=self.grille)
            self.continu=True
            self.annim()
        else:
            self.fen2=Tk()
            Label(self.fen2,text="la colonne est pleine").pack()
            self.fen2.after(1000,self.fen2.destroy)
        
    def annim(self):
        ##Fait l'annimation de la pièce##
        #Incrémente my quand l'image a parcouru 95/20 px
        if self.k==20 or self.k==40 or self.k==60 or self.k==80 or self.k==100:
            self.my+=1
        #Test si l'annimation doit continuer
        self.test(self.m)
        
        #Suite de l'annimation
        if self.continu==True:
            self.y+=95/20
            self.can.coords(self.oval, self.x,self.y)
            self.k+=1
            self.fen1.after(10,self.annim)

    def test(self,m):
        ##Test pour voir si la pièce est au dessus de l'autre ou pas
        if self.my+1==6:
            m[self.my][self.mx]=self.tour%2+1
            self.tour+=1
            self.continu=False
            vartest=False
            self.lbljoueur.configure(text=strjoueur[(self.tour)%2])
            vartest=testhorizontal(self.m,vartest)
            vartest=testvertical(self.m,vartest)
            vartest=testdiago1(self.m,vartest)
            vartest=testdiago2(self.m,vartest)
            self.continuationdujeu(vartest)
                
        elif m[self.my+1][self.mx]!=0:
            m[self.my][self.mx]=self.tour%2+1
            self.tour+=1
            self.continu=False
            vartest=False
            self.lbljoueur.configure(text=strjoueur[(self.tour)%2])
            vartest=testhorizontal(self.m,vartest)
            vartest=testvertical(self.m,vartest)
            vartest=testdiago1(self.m,vartest)
            vartest=testdiago2(self.m,vartest)
            self.continuationdujeu(vartest)
        else:
            self.continu=True
    
    def continuationdujeu(self,vartest):
        if vartest==True:
                
                vartest=False
                self.fen2=Tk()
                
                self.lbl2=Label(self.fen2,text="Voulez vous recommencer une nouvelle partie?")
                self.lbl2.pack()
                self.bou1=Button(self.fen2,text="Oui",command=self.refairefen)
                self.bou1.pack(side=RIGHT)
                self.bou2=Button(self.fen2,text="Non",command=self.finjeu)
                self.bou2.pack(side=LEFT)
                self.fen2.mainloop()
        else:
            vartest=False
            pass
        
    def refairefen(self):
        self.fen1.destroy()
        self.fen2.destroy()
        self.__init__()
        
    def finjeu(self):
        self.fen1.destroy()
        self.fen2.destroy()
        